package org.enzy.morphose.mapping.sample;

import org.enzy.morphose.mapping.annotation.ValueFrom;
import org.enzy.morphose.mapping.annotation.MapsFrom;

public class MultipleSourceConstructorMember {

    private String memberName;
    private Boolean banned;
    private Short age;

    @MapsFrom({SystemUser.class})
    public MultipleSourceConstructorMember(@ValueFrom("getUserName") String memberName,
                     @ValueFrom("isBanned") Boolean isBanned,
                     @ValueFrom("getAge") Short yearsOld) {
        this.memberName = memberName;
        this.banned = isBanned;
        this.age = yearsOld;
    }

    @MapsFrom({SystemUser.class})
    public MultipleSourceConstructorMember(@ValueFrom("getUserName") String memberName,
                     @ValueFrom("isBanned") Boolean isBanned,
                     @ValueFrom("getAge") Short yearsOld,
                     Boolean imABadConstructor) {
        this.memberName = memberName;
        this.banned = isBanned;
        this.age = yearsOld;
    }

    public String getMemberName() {
        return memberName;
    }

    public Boolean isBanned() {
        return banned;
    }

    public Short getAge() {
        return age;
    }
}
